Magnetic hard disk drives (HDDs) have been employed in information technology as a low-cost means for providing random access to large quantities of data. Consequently, as digital technologies have greatly expanded the need for data storage in all aspects of modern life, areal density of information stored in HDDs has continuously increased. However, there is a physical limitation for the minimum width of a write head when using conventional data recording techniques, such as perpendicular magnetic recording (PMR). This minimum width has prevented further decreases in written track width and areal density of HDDs, even though the width of a read head can be further reduced.
A recently developed technology that has further increased the areal density of magnetic HDDs is shingled magnetic recording (SMR). In an HDD that employs SMR, adjacent data tracks on a magnetic disk are each written (one group at a time) so as to overlap, and therefore overwrite, a portion of the previously written data track. As a result, the data tracks written in an SMR HDD are compressed in width to allow for increased data density in an HDD.
Once a data track is written in a shingled structure, that data track cannot be updated in place because that would overwrite and destroy data in one or more adjacent and overlapping data tracks. That is, random block overwrites cannot be performed on shingled data tracks without disturbing existing data. To avoid re-writing an entire group, or “band,” of shingled data tracks each time a host requests an overwrite of data within that group of tracks, data associated with write requests are commonly stored in a so-called “media cache.” Typically, the media cache is located in a conventional magnetic recording (CMR) region of the HDD, thereby allowing random block writes to the HDD. Data from separate write requests to different logical blocks may be written in a single set of contiguous blocks in the media cache, greatly increasing the random write performance of the HDD. Further, if all writes to the media cache are sequential in nature, then it is not necessary for the media cache to be located in a CMR region of the drive. In either case, data associated with write requests and stored in the media cache can be later written into the appropriate SMR region of the HDD along with other write data associated with that SMR region. Thus, application of an on-disk media cache enables the random write performance of an SMR HDD to match or even exceed that of a CMR HDD.
In certain situations, data stored via SMR can be more time-consuming to read than data stored in a CMR HDD, since the logical locality within a set of data stored in an SMR HDD does not always translate into physical locality of the various physical locations in the SMR HDD that store that set of data. That is, the logical block addresses (LBAs) associated with the set of data can be a single contiguous group of LBAs, and therefore logically proximate each other, while the physical sectors storing the set of data can be distributed across multiple non-contiguous regions of the SMR recording medium. This is because, in an SMR HDD, LBAs are typically grouped into logical bands that are each temporarily associated with a particular physical band of data tracks. Each time a logical band is updated with new data from the media cache, the logical band is associated with a new physical band of data tracks, and the updated data for that logical band is written to the new physical band. The new physical band is a currently available physical band of data tracks (referred to as a “spare band”) that stores no valid data. Because the physical location of the spare band can be anywhere within a Head/Zone region of the SMR HDD, data for two logical bands that are adjacent to each other in LBA-space may be stored in sectors that are physically far apart in the SMR HDD. Typically, a host computer or other user of the SMR HDD operates under the assumption that random accesses within the LBAs associated with a set of data that spans a relatively small number of logical blocks can be performed quickly. In practice, however, when the set of data is associated with LBAs that span two or more logical bands that are not stored in adjacent physical bands, random accesses within those LBAs typically requires time-consuming seeks that significantly degrade performance.